public class test5 {
    //力扣 467.环绕字符串中唯一的子字符串
    public int findSubstringInWraproundString(String s) {
        //创建dp表
        //初始化
        //填表
        //返回值
        char[] arr = s.toCharArray();
        int n = s.length();
        int[] dp = new int[n];
        for(int i = 0;i<n;i++){
            dp[i] = 1;
        }
        //利用dp得到每个位置为结尾的最长连续数组的长度
        for(int i = 1;i<n;i++){
            char prev = arr[i-1];
            char cur = arr[i];
            if(prev+1 == cur || (prev=='z' && cur=='a') ){
                dp[i] += dp[i-1];
            }
        }
        //去重
        int[] hash = new int[26];
        for(int i = 0;i<n;i++){
            hash[arr[i]-'a'] =Math.max(hash[arr[i]-'a'],dp[i]);
        }
        //返回结果
        int ret = 0;
        for(int x :hash){
            ret+=x;
        }
        return ret;
    }
}
